﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace QuanCafe
{
    public partial class ucCapNhatThucUong : UserControl
    {

        #region Thiết lập các properties

        private string _tenanh;


        [Category("ThongTinThucUong"), Description("Chọn ẩn hay hiện label tinhtrang!")]
        public bool LbntinhtrangVisible
        {
            get { return lbnTinhTrang.Visible; }
            set { lbnTinhTrang.Visible = value; }
        }

        [Category("ThongTinThucUong"), Description("Chọn ẩn hay hiện radio Con!")]

        public bool RbtnconVisible
        {
            get { return rbtConThucUong.Visible; }
            set { rbtConThucUong.Visible = value; }

        }

        [Category("ThongTinThucUong"), Description("Chọn ẩn hay hiện radio Het!")]
        public bool RbtnhetVisible
        {
            get { return rbtHetThucUong.Visible; }
            set { rbtHetThucUong.Visible = value; }
        }



        [Category("ThongTinThucUong"), Description("Chọn ẩn hay hiện label mã thức uống!")]
        public bool LbnmathucuongVisible
        {
            get { return lbnMaThucUong.Visible; }
            set { lbnMaThucUong.Visible = value; }
        }

        [Category("ThongTinThucUong"), Description("Chọn ẩn hay hiện textbox mã thức uống!")]
        public bool TxtmathucuongVisible
        {
            get { return txtMaThucUong.Visible; }
            set { txtMaThucUong.Visible = value; }
        }

        [Category("ThongTinThucUong"), Description("Chọn ẩn hay hiện button kiểm tra mã thức uống!")]
        public bool BtnmathucuongVisible
        {
            get { return btnKiemTraMa.Visible; }
            set { btnKiemTraMa.Visible = value; }
        }

        [Category("ThongTinThucUong"), Description("tên của ảnh đại diện!")]
        public string Tenanh
        {
            get { return _tenanh; }
            set { _tenanh = value; }
        }

        [Category("ThongTinThucUong"), Description("địa chỉ thư mục của ảnh đại diện!")]
        public string Linkanh
        {
            get { return txtAnhDaiDien.Text; }
            set { txtAnhDaiDien.Text = value; }
        }

        [Category("ThongTinThucUong"), Description("Ảnh đại diện cho thức uống!")]
        public string Anhdaidien
        {
            get { return ptbAnhDaiDien.ImageLocation; }
            set { ptbAnhDaiDien.ImageLocation = value; }
        }

        [Category("ThongTinThucUong"), Description("Mã thức uống!")]
        public string Mathucuong
        {
            get { return txtMaThucUong.Text; }
            set { txtMaThucUong.Text = value; }
        }

        [Category("ThongTinThucUong"), Description("Tên thức uống!")]
        public string Tenthucuong
        {
            get { return txtTenThucUong.Text; }
            set { txtTenThucUong.Text = value; }
        }

        [Category("ThongTinThucUong"), Description("Giá thức uống!")]
        public string Dongia
        {
            get 
            {
                return txtDonGia.Text;
            }

            set { txtDonGia.Text = value;}
        }


        [Category("ThongTinThucUong"), Description("Nhóm của thức uống!")]
        public string Nhomthucuong
        {
            get { return txtNhom.Text; }
            set { txtNhom.Text = value; }
        }

        [Category("ThongTinThucUong"), Description("Tình Trạng của thức uống!")]
        public int Tinhtrang
        {
            get
            {
                if (rbtConThucUong.Checked == true)
                {
                    rbtConThucUong.Checked = true;
                    rbtHetThucUong.Checked = false;
                    return 1;
                }
                else
                {
                    rbtConThucUong.Checked = false;
                    rbtHetThucUong.Checked = true;
                    return 0;
                }
            }
            set
            {
                if (value == 1)
                {
                    rbtConThucUong.Checked = true;
                    rbtHetThucUong.Checked = false;
                }
                else
                {
                    rbtConThucUong.Checked = false;
                    rbtHetThucUong.Checked = true;
                }
            }
        }

        [Category("ThongTinThucUong"), Description("Thông tin chung về thức uống!")]
        public string Thongtin
        {
            get { return rtbThongTin.Text; }
            set { rtbThongTin.Text = value; }
        }

        [Category("ThongTinThucUong"), Description("Cách pha chế thức uống!")]
        public string Cachphache
        {
            get { return rtbCachPhaChe.Text; }
            set { rtbCachPhaChe.Text = value; }
        }


        [Category("ThongTinThucUong"), Description("Giá trị dinh dưỡng của thức uống!")]
        public string Thongtindinhduong
        {
            get { return rtbThongTinDinhDuong.Text; }
            set { rtbThongTinDinhDuong.Text = value; }
        }


        // thiết lập thuộc tính



        #endregion


        #region Khởi tạo các sự kiện

        // tạo sự kiện khi thay đổi đường dẫn của link ảnh
        public delegate void CapNhatThucUong_LinkAnhChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi đường dẫn link ảnh thay đổi")]
        public event CapNhatThucUong_LinkAnhChangeHandle capNhatThucUong_linkAnhChange;

        // tạo sự kiện chọn đường dẫn cho link ảnh
        public delegate void CapNhatThucUong_ChonAnhHandle();
        [Category("ThongTinSuKien"), Description("Click để chọn ảnh")]
        public event CapNhatThucUong_ChonAnhHandle capNhatThucUong_chonAnh;

        // khi thay đổi text của mathucuong
        public delegate void CapNhatThucUong_MaThucUongChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi mã thức uống thay đổi")]
        public event CapNhatThucUong_MaThucUongChangeHandle capNhatThucUong_maThucUongChange;

        // sự kiện tra cứu mã thức uống
        public delegate void CapNhatThucUong_XacNhanMaThucUongHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi muốn kiểm tra mã thức uống có tồn tại ko")]
        public event CapNhatThucUong_XacNhanMaThucUongHandle capNhatThucUong_xacNhanMaThucUong;



        // khi thay đổi text của tenthucuong
        public delegate void CapNhatThucUong_TenThucUongChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi tên thức uống thay đổi")]
        public event CapNhatThucUong_TenThucUongChangeHandle capNhatThucUong_tenThucUongChange;

        // khi thay đổi text của nhomthucuong
        public delegate void CapNhatThucUong_NhomThucUongChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi nhóm thức uống thay đổi")]
        public event CapNhatThucUong_NhomThucUongChangeHandle capNhatThucUong_nhomThucUongChange;

        // khi thay đổi text của dongia
        public delegate void CapNhatThucUong_DonGiaChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi đơn giá thức uống thay đổi")]
        public event CapNhatThucUong_DonGiaChangeHandle capNhatThucUong_donGiaChange;

        // sự kiện tra cứu mã nhóm thức uống
        public delegate void CapNhatThucUong_XacNhanNhomThucUongHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi muốn kiểm tra mã thức uống có tồn tại ko")]
        public event CapNhatThucUong_XacNhanNhomThucUongHandle capNhatThucUong_xacNhanNhomThucUong;

        // khi thay đổi text của thongtin
        public delegate void CapNhatThucUong_ThongTinChungChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi đơn giá thức uống thay đổi")]
        public event CapNhatThucUong_ThongTinChungChangeHandle capNhatThucUong_thongTinChungChange;

        // khi thay đổi text của cachphache
        public delegate void CapNhatThucUong_CachPhaCheChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi đơn giá thức uống thay đổi")]
        public event CapNhatThucUong_CachPhaCheChangeHandle capNhatThucUong_cachPhaCheChange;

        // khi thay đổi text của thongtindinhduong
        public delegate void CapNhatThucUong_ThongTinDinhDuongChangeHandle();
        [Category("ThongTinSuKien"), Description("Xảy ra khi đơn giá thức uống thay đổi")]
        public event CapNhatThucUong_ThongTinDinhDuongChangeHandle capNhatThucUong_thongTinDinhDuongChange;

        // sự kiện đang trong quá trình load ảnh
        public delegate void CapNhatThucUong_DangLoadAnhHandle();
        [Category("ThongTinSuKien"), Description("Đang trong trạng thái chờ load một hình ảnh!")]
        public event CapNhatThucUong_DangLoadAnhHandle capNhatThucUong_dangLoadAnh;

        // sự kiện sau khi load ảnh hoàn tất
        public delegate void CapNhatThucUong_LoadAnhXongHandle();
        [Category("ThongTinSuKien"), Description("Sau khi đã load xong một ảnh!")]
        public event CapNhatThucUong_LoadAnhXongHandle capNhatThucUong_loadAnhXong;


        // sự kiện rbtCon CheckChange
        public delegate void CapNhatThucUong_ConChangeHandle();
        [Category("ThongTinSuKien"), Description("Check thay đổi!")]
        public event CapNhatThucUong_ConChangeHandle capNhatThucUong_conChange;

        // sự kiện rbtHet CheckChange
        public delegate void CapNhatThucUong_HetChangeHandle();
        [Category("ThongTinSuKien"), Description("Check thay đổi!")]
        public event CapNhatThucUong_HetChangeHandle capNhatThucUong_hetChange;


        #endregion

        public ucCapNhatThucUong()
        {
            InitializeComponent();
            if (Tinhtrang == 1)
            {
                rbtConThucUong.Checked = true;
                rbtHetThucUong.Checked = false;
            }
            else
            {
                rbtConThucUong.Checked = false;
                rbtHetThucUong.Checked = true;
            }
        }

        #region Xử lý các sự kiện

        // viết hàm xử lý quá trình đợi load ảnh
        private void ptbAnhDaiDien_LoadProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            probAnhDaiDien.Visible = true;
            if (capNhatThucUong_dangLoadAnh != null)
            {
                capNhatThucUong_dangLoadAnh();
            }
        }

        // viết hàm xử lý sau khi load ảnh xong
        private void ptbAnhDaiDien_LoadCompleted(object sender, AsyncCompletedEventArgs e)
        {
            probAnhDaiDien.Visible = false;
            if (capNhatThucUong_loadAnhXong != null)
            {
                capNhatThucUong_loadAnhXong();
            }
        }

        // xử lý việc chọn ảnh
        private void btnChonAnh_Click(object sender, EventArgs e)
        {
            if (capNhatThucUong_chonAnh != null)
            {
               
                capNhatThucUong_chonAnh();  
            }
        }

        // xử lý việc kiểm tra mã nhóm thức uống
        private void btnKiemTraNhom_Click(object sender, EventArgs e)
        {
            if (capNhatThucUong_xacNhanNhomThucUong != null)
            {
                capNhatThucUong_xacNhanNhomThucUong();
            }
        }

        private void rbtConThucUong_CheckedChanged(object sender, EventArgs e)
        {
            if (capNhatThucUong_conChange != null)
            {
                capNhatThucUong_conChange();
            }
        }

        private void rbtHetThucUong_CheckedChanged(object sender, EventArgs e)
        {
            if (capNhatThucUong_hetChange != null)
            {
                capNhatThucUong_hetChange();
            }
        }

        private void ttpInfo_Draw(object sender, DrawToolTipEventArgs e)
        {
            e.DrawBackground();
            e.DrawText();
        }

        private void btnKiemTraMa_Click(object sender, EventArgs e)
        {
            if (capNhatThucUong_xacNhanMaThucUong != null)
            {
                capNhatThucUong_xacNhanMaThucUong();
            }
        }


        #endregion

        


        #region Xử lý các focus

        private void txtAnhDaiDien_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                // gọi button mở ảnh
                btnChonAnh_Click(sender, e);
            }
        }

        private void txtMaThucUong_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnKiemTraMa_Click(sender, e);
            }
        }

        private void txtTenThucUong_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                txtDonGia.Focus();
            }
        }

        private void txtDonGia_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                txtNhom.Focus();
            }
        }

        private void txtNhom_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnKiemTraNhom_Click(sender, e);
            }
        }



        #endregion

        

       

        




    }
}
